// $ANTLR 3.2 Sep 23, 2009 12:02:23 D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g 2010-05-10 20:51:50

package astudy.parser.calc;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class CalculatorLexer extends Lexer {
	int a;
	int b = a+3;
	int d;
	int c  = d = a+b;
    public static final int INTEGER=13;
    public static final int LN=24;
    public static final int MOD=8;
    public static final int LOG=25;
    public static final int NUMBER=15;
    public static final int WHITESPACE=16;
    public static final int FLOAT=14;
    public static final int SQRT=22;
    public static final int MULT=6;
    public static final int MINUS=5;
    public static final int EOF=-1;
    public static final int LPAREN=10;
    public static final int ABS=19;
    public static final int RPAREN=11;
    public static final int EOL=17;
    public static final int POW=23;
    public static final int SIN=20;
    public static final int COMMA=9;
    public static final int COS=21;
    public static final int PLUS=4;
    public static final int DIGIT=18;
    public static final int DIV=7;
    public static final int DOT=12;

    // delegates
    // delegators

    public CalculatorLexer() {;} 
    public CalculatorLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public CalculatorLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g"; }

    // $ANTLR start "MULT"
    public final void mMULT() throws RecognitionException {
        try {
            int _type = MULT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:11:6: ( '*' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:11:8: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MULT"

    // $ANTLR start "DIV"
    public final void mDIV() throws RecognitionException {
        try {
            int _type = DIV;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:12:5: ( '/' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:12:7: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIV"

    // $ANTLR start "MOD"
    public final void mMOD() throws RecognitionException {
        try {
            int _type = MOD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:13:5: ( '%' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:13:7: '%'
            {
            match('%'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MOD"

    // $ANTLR start "COMMA"
    public final void mCOMMA() throws RecognitionException {
        try {
            int _type = COMMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:52:9: ( ',' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:52:11: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMA"

    // $ANTLR start "PLUS"
    public final void mPLUS() throws RecognitionException {
        try {
            int _type = PLUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:53:8: ( '+' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:53:10: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PLUS"

    // $ANTLR start "MINUS"
    public final void mMINUS() throws RecognitionException {
        try {
            int _type = MINUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:54:9: ( '-' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:54:11: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "LPAREN"
    public final void mLPAREN() throws RecognitionException {
        try {
            int _type = LPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:55:10: ( '(' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:55:12: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LPAREN"

    // $ANTLR start "RPAREN"
    public final void mRPAREN() throws RecognitionException {
        try {
            int _type = RPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:56:10: ( ')' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:56:12: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RPAREN"

    // $ANTLR start "DOT"
    public final void mDOT() throws RecognitionException {
        try {
            int _type = DOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:57:8: ( '.' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:57:10: '.'
            {
            match('.'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOT"

    // $ANTLR start "NUMBER"
    public final void mNUMBER() throws RecognitionException {
        try {
            int _type = NUMBER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:58:10: ( INTEGER | FLOAT | FLOAT ( 'e' | 'E' ) ( PLUS | MINUS )* INTEGER )
            int alt2=3;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:58:12: INTEGER
                    {
                    mINTEGER(); 

                    }
                    break;
                case 2 :
                    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:58:20: FLOAT
                    {
                    mFLOAT(); 

                    }
                    break;
                case 3 :
                    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:58:26: FLOAT ( 'e' | 'E' ) ( PLUS | MINUS )* INTEGER
                    {
                    mFLOAT(); 
                    if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}

                    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:58:40: ( PLUS | MINUS )*
                    loop1:
                    do {
                        int alt1=2;
                        int LA1_0 = input.LA(1);

                        if ( (LA1_0=='+'||LA1_0=='-') ) {
                            alt1=1;
                        }


                        switch (alt1) {
                    	case 1 :
                    	    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:
                    	    {
                    	    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                    	        input.consume();

                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        recover(mse);
                    	        throw mse;}


                    	    }
                    	    break;

                    	default :
                    	    break loop1;
                        }
                    } while (true);

                    mINTEGER(); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUMBER"

    // $ANTLR start "WHITESPACE"
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:59:14: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:59:16: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:59:16: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( ((LA3_0>='\t' && LA3_0<='\n')||(LA3_0>='\f' && LA3_0<='\r')||LA3_0==' ') ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "EOL"
    public final void mEOL() throws RecognitionException {
        try {
            int _type = EOL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:60:8: ( '=' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:60:10: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EOL"

    // $ANTLR start "DIGIT"
    public final void mDIGIT() throws RecognitionException {
        try {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:61:16: ( '0' .. '9' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:61:18: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "DIGIT"

    // $ANTLR start "INTEGER"
    public final void mINTEGER() throws RecognitionException {
        try {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:62:17: ( ( DIGIT )+ )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:62:19: ( DIGIT )+
            {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:62:19: ( DIGIT )+
            int cnt4=0;
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:62:20: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "INTEGER"

    // $ANTLR start "FLOAT"
    public final void mFLOAT() throws RecognitionException {
        try {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:16: ( ( DIGIT )* DOT ( DIGIT )* )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:18: ( DIGIT )* DOT ( DIGIT )*
            {
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:18: ( DIGIT )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:19: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

            mDOT(); 
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:29: ( DIGIT )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( ((LA6_0>='0' && LA6_0<='9')) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:63:30: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "FLOAT"

    // $ANTLR start "ABS"
    public final void mABS() throws RecognitionException {
        try {
            int _type = ABS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:65:7: ( 'abs' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:65:9: 'abs'
            {
            match("abs"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ABS"

    // $ANTLR start "SIN"
    public final void mSIN() throws RecognitionException {
        try {
            int _type = SIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:66:7: ( 'sin' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:66:9: 'sin'
            {
            match("sin"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SIN"

    // $ANTLR start "COS"
    public final void mCOS() throws RecognitionException {
        try {
            int _type = COS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:67:7: ( 'cos' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:67:9: 'cos'
            {
            match("cos"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COS"

    // $ANTLR start "SQRT"
    public final void mSQRT() throws RecognitionException {
        try {
            int _type = SQRT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:68:7: ( 'sqrt' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:68:9: 'sqrt'
            {
            match("sqrt"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SQRT"

    // $ANTLR start "POW"
    public final void mPOW() throws RecognitionException {
        try {
            int _type = POW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:69:7: ( 'pow' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:69:9: 'pow'
            {
            match("pow"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "POW"

    // $ANTLR start "LN"
    public final void mLN() throws RecognitionException {
        try {
            int _type = LN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:70:6: ( 'ln' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:70:8: 'ln'
            {
            match("ln"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LN"

    // $ANTLR start "LOG"
    public final void mLOG() throws RecognitionException {
        try {
            int _type = LOG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:71:7: ( 'log' )
            // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:71:9: 'log'
            {
            match("log"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LOG"

    public void mTokens() throws RecognitionException {
        // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:8: ( MULT | DIV | MOD | COMMA | PLUS | MINUS | LPAREN | RPAREN | DOT | NUMBER | WHITESPACE | EOL | ABS | SIN | COS | SQRT | POW | LN | LOG )
        int alt7=19;
        alt7 = dfa7.predict(input);
        switch (alt7) {
            case 1 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:10: MULT
                {
                mMULT(); 

                }
                break;
            case 2 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:15: DIV
                {
                mDIV(); 

                }
                break;
            case 3 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:19: MOD
                {
                mMOD(); 

                }
                break;
            case 4 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:23: COMMA
                {
                mCOMMA(); 

                }
                break;
            case 5 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:29: PLUS
                {
                mPLUS(); 

                }
                break;
            case 6 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:34: MINUS
                {
                mMINUS(); 

                }
                break;
            case 7 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:40: LPAREN
                {
                mLPAREN(); 

                }
                break;
            case 8 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:47: RPAREN
                {
                mRPAREN(); 

                }
                break;
            case 9 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:54: DOT
                {
                mDOT(); 

                }
                break;
            case 10 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:58: NUMBER
                {
                mNUMBER(); 

                }
                break;
            case 11 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:65: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 12 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:76: EOL
                {
                mEOL(); 

                }
                break;
            case 13 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:80: ABS
                {
                mABS(); 

                }
                break;
            case 14 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:84: SIN
                {
                mSIN(); 

                }
                break;
            case 15 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:88: COS
                {
                mCOS(); 

                }
                break;
            case 16 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:92: SQRT
                {
                mSQRT(); 

                }
                break;
            case 17 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:97: POW
                {
                mPOW(); 

                }
                break;
            case 18 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:101: LN
                {
                mLN(); 

                }
                break;
            case 19 :
                // D:\\develop\\experiments\\astudy\\base\\astudy\\parser\\calc\\Calculator.g:1:104: LOG
                {
                mLOG(); 

                }
                break;

        }

    }


    protected DFA2 dfa2 = new DFA2(this);
    protected DFA7 dfa7 = new DFA7(this);
    static final String DFA2_eotS =
        "\1\uffff\1\3\1\4\2\uffff\1\4\1\uffff";
    static final String DFA2_eofS =
        "\7\uffff";
    static final String DFA2_minS =
        "\2\56\1\60\2\uffff\1\60\1\uffff";
    static final String DFA2_maxS =
        "\2\71\1\145\2\uffff\1\145\1\uffff";
    static final String DFA2_acceptS =
        "\3\uffff\1\1\1\2\1\uffff\1\3";
    static final String DFA2_specialS =
        "\7\uffff}>";
    static final String[] DFA2_transitionS = {
            "\1\2\1\uffff\12\1",
            "\1\2\1\uffff\12\1",
            "\12\5\13\uffff\1\6\37\uffff\1\6",
            "",
            "",
            "\12\5\13\uffff\1\6\37\uffff\1\6",
            ""
    };

    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
    static final short[][] DFA2_transition;

    static {
        int numStates = DFA2_transitionS.length;
        DFA2_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
        }
    }

    class DFA2 extends DFA {

        public DFA2(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 2;
            this.eot = DFA2_eot;
            this.eof = DFA2_eof;
            this.min = DFA2_min;
            this.max = DFA2_max;
            this.accept = DFA2_accept;
            this.special = DFA2_special;
            this.transition = DFA2_transition;
        }
        public String getDescription() {
            return "58:1: NUMBER : ( INTEGER | FLOAT | FLOAT ( 'e' | 'E' ) ( PLUS | MINUS )* INTEGER );";
        }
    }
    static final String DFA7_eotS =
        "\11\uffff\1\22\15\uffff";
    static final String DFA7_eofS =
        "\27\uffff";
    static final String DFA7_minS =
        "\1\11\10\uffff\1\60\4\uffff\1\151\2\uffff\1\156\5\uffff";
    static final String DFA7_maxS =
        "\1\163\10\uffff\1\145\4\uffff\1\161\2\uffff\1\157\5\uffff";
    static final String DFA7_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\uffff\1\12\1\13\1\14"+
        "\1\15\1\uffff\1\17\1\21\1\uffff\1\11\1\16\1\20\1\22\1\23";
    static final String DFA7_specialS =
        "\27\uffff}>";
    static final String[] DFA7_transitionS = {
            "\2\13\1\uffff\2\13\22\uffff\1\13\4\uffff\1\3\2\uffff\1\7\1"+
            "\10\1\1\1\5\1\4\1\6\1\11\1\2\12\12\3\uffff\1\14\43\uffff\1\15"+
            "\1\uffff\1\17\10\uffff\1\21\3\uffff\1\20\2\uffff\1\16",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\12\12\13\uffff\1\12\37\uffff\1\12",
            "",
            "",
            "",
            "",
            "\1\23\7\uffff\1\24",
            "",
            "",
            "\1\25\1\26",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS);
    static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS);
    static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS);
    static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS);
    static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS);
    static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS);
    static final short[][] DFA7_transition;

    static {
        int numStates = DFA7_transitionS.length;
        DFA7_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]);
        }
    }

    class DFA7 extends DFA {

        public DFA7(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 7;
            this.eot = DFA7_eot;
            this.eof = DFA7_eof;
            this.min = DFA7_min;
            this.max = DFA7_max;
            this.accept = DFA7_accept;
            this.special = DFA7_special;
            this.transition = DFA7_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( MULT | DIV | MOD | COMMA | PLUS | MINUS | LPAREN | RPAREN | DOT | NUMBER | WHITESPACE | EOL | ABS | SIN | COS | SQRT | POW | LN | LOG );";
        }
    }
 

}